
// 类型别名
// 类型别名 => 用来给一个类型起个新名字。


// 类型别名常用于联合类型
// type Name = string;  
// type Callback = (a:number,b:number) => void 
// type NameOrCallback = Name|Callback;
// // let str:Name = "100";

// function getName(n: NameOrCallback): Name|void {
//     if (typeof n === 'string') {
//         return n;
//     } else {
//         return n(1,2);
//     }
// }

// 字符串字面量类型
// 字符串字面量类型用来约束取值只能是某几个字符串中的一个。

type Sex = "man"|"woman"|"secret";
// type Sex = 0 | 1 | 2;

interface Person {
    name: string,
    age: number,
    sex: Sex,
}

let zhang: Person = {
    name: "张三",
    age: 18,
    sex: "man",
}


// 注意，类型别名与字符串字面量类型都是使用 type 进行定义。















export default 9